const express = require('express');
// 引入模型对象
const Users = require('../models/users');
// 创建路由器
const router = new express.Router();
router.post('/register',async(req,res)=>{
    //从注册页面获取用户名和密码    
    const user = req.body;
    // 当req.body 用户名或者密码为空  不符合约束条件  就是无效输入，请重新输入用户名和密码
    if(user.user.trim() && user.password.trim()){
        // 去数据库中查询是否有该用户名
        const result_find = await Users.findOne({user:user.user});
        console.log(result_find);
        if(result_find){//undefined.user
            res.send('用户名重复，请重新注册')
        }else{
            // 将数据存放到数据库
            const result = await Users.create(user);
            console.log(result);
            res.send('注册成功!!'); 
        }
        // res.send('test');
        /* 
        model.find(查询条件) 查询到返回[{}]  查询不到 []
        model.findOne(查询条件) 查到 返回该对象{}  查不到null
        
        */
    }else{
        res.send('请重新输入！！');
    }

   
})
router.post('/login',async(req,res)=>{
    // 登录那里有点bug,密码不对也可登录成功 
    // 去前台获取用户名和密码 
    // 服务器这边进行对比
    // 对比
    // 方法1：可以借助findOne进行对比
    // 方法2：拿到数据单独进行对比
    console.log(req.body);
    const user = req.body;
    if(user.user.trim() && user.password.trim()){
        // true 
        // 
        const result = await Users.findOne({user:user.user});
        console.log(result);
        // 进行对比
        if(result.user == user.user && result.password == user.password){

            res.send('登录成功')
        }else{
            res.send('用户名或者密码错误')
        }
    }else{
        res.send('请重新输入用户名和密码！！')
    }
})
// 修改密码   updateOne
router.post('/update',async(req,res)=>{
    // 获取用户名和密码
    console.log(req.body);
    // 从浏览器页面中获取要修改的用户名，根据用户名去数据库中查看对应的文档，找到对应的文档之后，将原来的密码替换成新密码
    // 获取的用户名是本来就有的 密码为新密码
    // model.updateOne(查询条件，替换的字段)
    const result = await Users.updateOne({user:req.body.user},{$set:{password:req.body.password}});
    console.log(result);
    res.send('修改成功');
})
// 删除用户名和密码
router.post('/delete',async(req,res)=>{
    console.log(req.body);
    // 删除该用户名对应的文档
    const result = await Users.deleteOne({user:req.body.user});
    console.log(result);
    res.send('删除成功！！');
    // 删除 找到用户名然后直接进行删除即可
    
})
module.exports = router;

/* 
注册
发送用户名和密码  
服务器 
    ①先去数据库中进行查看，有没有当前的用户名，有，证明用户名重复，请重新起名
    ②先去数据库中进行查看，有没有当前的用户名，没有，直接注册即可

登录
    先去发送用户名和密码
    服务器 获取用户名和密码
     先去数据库中进行查看，看是否有用户名和密码 有登录成功！！
                                            没有 请重新登录   


*/